
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __gnu_CORBA_CDR_AbstractCdrInput__
#define __gnu_CORBA_CDR_AbstractCdrInput__

#pragma interface

#include <org/omg/CORBA_2_3/portable/InputStream.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace CORBA
    {
      namespace CDR
      {
          class AbstractCdrInput;
          class AbstractDataInput;
          class BufferredCdrInput;
          class gnuRuntime;
      }
      namespace GIOP
      {
          class CodeSetServiceContext;
      }
        class Version;
    }
  }
  namespace java
  {
    namespace math
    {
        class BigDecimal;
    }
  }
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class Any;
          class AnySeqHolder;
          class BooleanSeqHolder;
          class CharSeqHolder;
          class DoubleSeqHolder;
          class FloatSeqHolder;
          class LongLongSeqHolder;
          class LongSeqHolder;
          class ORB;
          class Object;
          class OctetSeqHolder;
          class ShortSeqHolder;
          class TypeCode;
          class ULongLongSeqHolder;
          class ULongSeqHolder;
          class UShortSeqHolder;
          class WCharSeqHolder;
      }
    }
  }
}

class gnu::CORBA::CDR::AbstractCdrInput : public ::org::omg::CORBA_2_3::portable::InputStream
{

public:
  AbstractCdrInput(::java::io::InputStream *);
  AbstractCdrInput();
  virtual void setBigEndian(jboolean);
  virtual jboolean isBigEndian();
  virtual void cloneSettings(::gnu::CORBA::CDR::AbstractCdrInput *);
  virtual void setInputStream(::java::io::InputStream *);
  virtual void setOffset(jint) = 0;
  virtual void setOrb(::org::omg::CORBA::ORB *);
  virtual void setVersion(::gnu::CORBA::Version *);
  virtual void align(jint) = 0;
  virtual jlong gnu_read_ulong();
  virtual jint gnu_read_ushort();
  virtual ::org::omg::CORBA::ORB * orb();
  virtual jint read();
  virtual jint read(JArray< jbyte > *, jint, jint);
  virtual jint read(JArray< jbyte > *);
  virtual ::org::omg::CORBA::Object * read_Object();
  virtual ::org::omg::CORBA::TypeCode * read_TypeCode();
  virtual ::org::omg::CORBA::Any * read_any();
  virtual jboolean read_boolean();
  virtual void read_boolean_array(JArray< jboolean > *, jint, jint);
  virtual jchar read_char();
  virtual void read_char_array(JArray< jchar > *, jint, jint);
  virtual jdouble read_double();
  virtual void read_double_array(JArray< jdouble > *, jint, jint);
  virtual ::gnu::CORBA::CDR::BufferredCdrInput * read_encapsulation();
  virtual ::java::math::BigDecimal * read_fixed();
  virtual jfloat read_float();
  virtual void read_float_array(JArray< jfloat > *, jint, jint);
  virtual jint read_long();
  virtual void read_long_array(JArray< jint > *, jint, jint);
  virtual jlong read_longlong();
  virtual void read_longlong_array(JArray< jlong > *, jint, jint);
  virtual jbyte read_octet();
  virtual void read_octet_array(JArray< jbyte > *, jint, jint);
  virtual JArray< jbyte > * read_sequence();
  virtual jshort read_short();
  virtual void read_short_array(JArray< jshort > *, jint, jint);
  virtual ::java::lang::String * read_string();
  virtual jint read_ulong();
  virtual void read_ulong_array(JArray< jint > *, jint, jint);
  virtual jlong read_ulonglong();
  virtual void read_ulonglong_array(JArray< jlong > *, jint, jint);
  virtual jshort read_ushort();
  virtual void read_ushort_array(JArray< jshort > *, jint, jint);
  virtual jchar read_wchar();
  virtual void read_wchar_array(JArray< jchar > *, jint, jint);
  virtual ::java::lang::String * read_wstring();
  virtual ::java::lang::String * read_wstring_UTF_16();
  static jchar swap(jchar);
  virtual void setCodeSet(::gnu::CORBA::GIOP::CodeSetServiceContext *);
  virtual ::gnu::CORBA::GIOP::CodeSetServiceContext * getCodeSet();
  virtual ::org::omg::CORBA::Object * read_Object(::java::lang::Class *);
  virtual ::java::io::Serializable * read_Value();
  virtual ::java::lang::Object * read_Abstract();
  virtual void read_char_array(::org::omg::CORBA::CharSeqHolder *, jint, jint);
  virtual void read_wchar_array(::org::omg::CORBA::WCharSeqHolder *, jint, jint);
private:
  JArray< jchar > * ensureArray(JArray< jchar > *, jint, jint);
public:
  virtual void read_ulong_array(::org::omg::CORBA::ULongSeqHolder *, jint, jint);
  virtual void read_long_array(::org::omg::CORBA::LongSeqHolder *, jint, jint);
private:
  JArray< jint > * ensureArray(JArray< jint > *, jint, jint);
public:
  virtual void read_float_array(::org::omg::CORBA::FloatSeqHolder *, jint, jint);
private:
  JArray< jfloat > * ensureArray(JArray< jfloat > *, jint, jint);
public:
  virtual void read_double_array(::org::omg::CORBA::DoubleSeqHolder *, jint, jint);
private:
  JArray< jdouble > * ensureArray(JArray< jdouble > *, jint, jint);
public:
  virtual void read_short_array(::org::omg::CORBA::ShortSeqHolder *, jint, jint);
  virtual void read_ushort_array(::org::omg::CORBA::UShortSeqHolder *, jint, jint);
private:
  JArray< jshort > * ensureArray(JArray< jshort > *, jint, jint);
public:
  virtual void read_octet_array(::org::omg::CORBA::OctetSeqHolder *, jint, jint);
private:
  JArray< jbyte > * ensureArray(JArray< jbyte > *, jint, jint);
public:
  virtual void read_longlong_array(::org::omg::CORBA::LongLongSeqHolder *, jint, jint);
  virtual void read_ulonglong_array(::org::omg::CORBA::ULongLongSeqHolder *, jint, jint);
private:
  JArray< jlong > * ensureArray(JArray< jlong > *, jint, jint);
public:
  virtual void read_boolean_array(::org::omg::CORBA::BooleanSeqHolder *, jint, jint);
private:
  JArray< jboolean > * ensureArray(JArray< jboolean > *, jint, jint);
public:
  virtual void read_any_array(::org::omg::CORBA::AnySeqHolder *, jint, jint);
private:
  JArray< ::org::omg::CORBA::Any * > * ensureArray(JArray< ::org::omg::CORBA::Any * > *, jint, jint);
public:
  virtual JArray< ::java::lang::String * > * _truncatable_ids();
  ::gnu::CORBA::CDR::gnuRuntime * __attribute__((aligned(__alignof__( ::org::omg::CORBA_2_3::portable::InputStream)))) runtime;
public: // actually protected
  static ::java::lang::String * UNEXP_EOF;
  ::gnu::CORBA::CDR::AbstractDataInput * b;
  ::java::io::InputStream * actual_stream;
  ::org::omg::CORBA::ORB * orb__;
  ::gnu::CORBA::Version * giop;
  ::gnu::CORBA::GIOP::CodeSetServiceContext * codeset;
private:
  ::java::lang::String * narrow_charset;
  ::java::lang::String * wide_charset;
  jboolean narrow_native;
  jboolean wide_native;
  jboolean little_endian;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_CORBA_CDR_AbstractCdrInput__
